package shoppingmall.manage.mapper;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import shoppingmall.manage.pojo.User;

import java.util.List;

/**
 * 平台会员用户相关 - mapper层 对应数据库表tb_user
 */
@Mapper  //在运行时，会自动生成该接口的实现类对象,并且将该对象交给IOC容器管理
public interface UserMapper {

    /**
     * 分页查询平台会员用户信息
     */
    @Select("select * from tb_user limit #{start},#{pageSize}")
    public List<User> getUserList(int start, int pageSize);

    /**
     * *****查询平台所有会员用户信息(所有数据查询-用作匹配订单的用户的用户名)
     */
    @Select("select * from tb_user")
    public List<User> getAllUserList();

    /**
     * 查询平台会员用户总人数
     */
    @Select("select count(*) from tb_user")
    public int getUserCount();

    /**
     * 对平台会员用户信息进行修改
     */
    public void updateUser (User user);

    /**
     * 对平台会员用户进行删除
     */
    @Delete("delete from tb_user where id = #{userId}")
    public void deleteUser (int userId);

    /**
     * 对平台会员用户进行多个删除
     */
    public void deleteUsers (List ids);

    /**
     * 对平台会员进行用户名模糊搜索
     */
    @Select("select * from tb_user where username like CONCAT('%',#{username},'%')")
    public List<User> getUserListByLikeUsername (String username);

    /**
     * 添加一个平台会员用户(前台api接口应该做的)
     */
    public int saveUser (User user);

    /**
     * 根据平台会员用户名查询平台会员信息(前台api接口应该做的)
     */

    /**
     * 根据某一段时间内查询注册的平台会员信息(数据大屏)
     */
    public List<User> getUserListByTimeQuantum (String startDate, String endDate);
}
